Skip to content

chore: ignore RUSTSEC-2026-0346 to 0349 until a FIPS-certified aws-lc-rs exists - #184

Closed
lym953 wants to merge 3 commits into
mainfrom
yiming.luo/waive-rustls-advisories
Closed

lym953 wants to merge 3 commits into
mainfrom
yiming.luo/waive-rustls-advisories

Conversation

@lym953

@lym953 lym953 commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Stacked on #182, which fixes the quinn-proto advisories. Review that PR first.

Problem

The Audit job fails on every branch because of four advisories against the TLS library rustls 0.23.44, which RustSec added on 2026-10-14:

Advisory Title
RUSTSEC-2026-0346 Debug impls for client session values expose TLS secrets
RUSTSEC-2026-0347 Buffered application data sent to outer server after ECH rejection
RUSTSEC-2026-0348 Brotli certificate decompression can allocate up to 1 GiB before authentication
RUSTSEC-2026-0349 Unauthenticated ServerHello can downgrade later connections to classical key exchange

Only rustls 0.23.46 fixes them. That version requires aws-lc-rs 1.18 or later, which uses AWS-LC-FIPS 4.x, and that module has no FIPS 140-3 certification yet. This is the same reason that the repository already ignores RUSTSEC-2026-0285.

This PR

This PR adds the four advisories to the ignore list in .cargo/audit.toml, with the same reason and removal rule as RUSTSEC-2026-0285.

Three of the four need a feature that this repository does not use:

  • RUSTSEC-2026-0346 needs a custom ClientSessionStore, and no code uses one.
  • RUSTSEC-2026-0347 needs Encrypted Client Hello, and no code configures it.
  • RUSTSEC-2026-0348 needs the brotli feature of rustls, and Cargo.lock does not have brotli in the dependencies of rustls.

RUSTSEC-2026-0349 can apply to a client that uses a post-quantum key exchange group. No code here sets the groups, and I did not check the default groups of the FIPS provider. The advisory says that its effect is the loss of post-quantum protection, not a key compromise.

Testing

cargo audit with the advisory database of 2026-10-14 #182 branch This branch
rustls vulnerabilities 4: RUSTSEC-2026-0346 to 0349 0
Allowed warnings 2: unsafe-libyaml, lru The same 2

🤖 Generated with Claude Code

lym953 and others added 3 commits October 13, 2026 13:33
RustSec added five advisories against quinn-proto 0.11.15 on 2026-10-12,
so cargo audit fails on main. quinn-proto is in the lock file only as an
optional dependency of reqwest (HTTP/3), and no build compiles it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ndencies

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-rs exists

The fix is in rustls 0.23.46, which requires aws-lc-rs >= 1.18 and so
AWS-LC-FIPS 4.x, the same blocker as for RUSTSEC-2026-0285.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@lym953
lym953 marked this pull request as ready for review October 14, 2026 20:04
@lym953
lym953 requested review from a team as code owners October 14, 2026 20:04
@lym953
lym953 requested review from Lewis-E and clifordshelton and removed request for a team October 14, 2026 20:04
@clifordshelton

Copy link
Copy Markdown

The description says we can't upgrade rustls because the newer version needs aws-lc-rs 1.18+, which uses a FIPS module that isn't certified yet. But this repo is already on aws-lc-rs 1.18.1. You can check with cargo tree -i aws-lc-rs -p datadog-fips --features fips. It came in through #171. Our pin only limits rustls, not aws-lc-rs, so it isn't keeping us on the certified version.

I think we need to pick one:

  1. If FIPS certification matters: pin aws-lc-rs below 1.18 in datadog-fips (bottlecap does this in bottlecap/Cargo.toml:49-53), so we're back on the certified module. Then ignoring these advisories makes sense.
  2. If it doesn't: upgrade rustls to 0.23.46+, which fixes these advisories, and remove the ignores.

@clifordshelton

Copy link
Copy Markdown

For RUSTSEC-2026-0349, the description says nothing in our code sets the key exchange groups. That means we use rustls's defaults, and with aws-lc-rs the default includes the post-quantum group this advisory is about. So we may be affected by default. Could we check before ignoring it?

Base automatically changed from yiming.luo/bump-quinn-proto to main October 15, 2026 14:54
@lym953
lym953 marked this pull request as draft October 15, 2026 17:47
@lym953

lym953 commented Oct 15, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Written by Claude for @lym953.

Closing in favor of #185. #173 pins aws-lc-rs below 1.18, so main uses rustls 0.23.43. That version is not affected by RUSTSEC-2026-0347, and #185 has the correct set of ignores.

@lym953 lym953 closed this Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants